今天又是很趕的一天,連跑了三個面試,差點來不及回來寫鐵人賽,還好趕上了 XD
之前我們學完了Topic和Service,是透過不同的方法讓Node之間溝通,那他們在溝通的時候都是使用messsage在傳輸訊息,在ROS裡面定義一個message,需要使用.msg和.srv檔案,那我們就來看看這兩個差在哪吧!
.msg檔就是定義一個message格式的一種檔案,我們可以自定義自己想要的message type,但他當然也有已經建立好的一些格式讓我們可以直接拿來用,例如之前Topic教學裡面的std_msgs/String就是一種,官方提供的message格式有這些:

大概就是包含了各種型別跟一些陣列,當然如果上述格式的message都不符合我們的需求的話,就要自己定義一種新的格式囉!
上一篇我們其實就講過了service其實是由一組request和response組成的,所以它會包含兩種不同格式的message,是分別給request和response用的,像上次Service的範例add_two_ints,就是request需要兩個int型別的資料,而response就是一個int這樣,其定義的格式如下:
int64 a
int64 b
---
int64 sum
在.srv檔中會用---將request和response格式的定義分開,所以這樣大概就可以看出他需要兩個int參數,並回傳一個int的資料。
明天我們就來寫看看自己定義的msg和srv吧!